package com.yizhuoyan.his.service.doctor.outpatient;

import com.yizhuoyan.his.ao.DocHerbalPrescriptionAo;
import com.yizhuoyan.his.ao.DocPrescriptionAo;
import com.yizhuoyan.his.dto.DocHerbalPrescriptionDto;
import com.yizhuoyan.his.dto.DocPrescriptionDto;

import java.util.List;

/**
 * 医生处方服务
 */
public interface PrescriptionService {
    /**
     * 新增中草药处方
     *
     * @param ao
     * @return
     * @throws Exception
     */
    void addHerbalPrescription(DocHerbalPrescriptionAo ao) throws Exception;

    /**
     * 移除中草药处方
     *
     * @param id 通过id获得相应的中草药处方（id为病例id或者挂号id）
     * @return
     * @throws Exception
     */
    void removeHerbalPrescriptionById(Long id) throws Exception;

    /**
     * 修改中草药处方
     *
     * @param id 通过id获得对应的中草药处方
     * @param ao 需要修改的参数对象
     * @return
     * @throws Exception
     */
    void modifyHerbalPrescriptionById(Long id, DocHerbalPrescriptionAo ao) throws Exception;

    /**
     * 查询中草药处方
     *
     * @param id 通过id得到对应的处方
     * @return 返回对应的中草药处方 用于发送给药房
     * @throws Exception
     */
    List<DocHerbalPrescriptionDto> queryHerbalPrescriptionById(Long id) throws Exception;


    //                                     中成药

    /**
     * 新增中成药处方
     *
     * @param ao 需要新增的参数对象
     * @return
     * @throws Exception
     */
    void addPrescription(DocPrescriptionAo ao) throws Exception;

    /**
     * 移除中成药处方
     *
     * @param id 通过id获得相应的中成药处方
     * @return
     * @throws Exception
     */
    void removePrescriptionById(Long id) throws Exception;

    /**
     * 修改中成药处方
     *
     * @param id 通过id获得对应的中成药处方
     * @param ao 需要修改的参数对象
     * @return
     * @throws Exception
     */
    void modifyPrescriptionById(Long id, DocPrescriptionAo ao) throws Exception;

    /**
     * 查询中成药处方
     *
     * @param id 通过id得到对应的处方
     * @return 返回对应的中成药处方 用于发送给药房
     * @throws Exception
     */
    List<DocPrescriptionDto> queryPrescriptionByIdById(Long id) throws Exception;

}
